package com.imooc.follow.controller;

import com.imooc.commons.model.domain.ResultInfo;
import com.imooc.commons.utils.ResultInfoUtil;
import com.imooc.follow.service.FollowService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * @author gcq
 * @Create 2022-11-12
 */
@RestController
public class FollowController {

    @Resource
    private FollowService followService;

    @Resource
    private HttpServletRequest servletRequest;

    /**
     * 获取粉丝集合
     */
    @GetMapping("/followers/{dinerId}")
    public ResultInfo findFollowers(@PathVariable Integer dinerId) {
        return ResultInfoUtil.buildSuccess(servletRequest.getServletPath(), followService.findFollowers(dinerId));
    }

    /**
     * 用户关注或取关
     *
     * @param followDinerId 关注用户Id
     * @param isFollowed    是否关注 1=关注 0=取关
     * @param access_token  登录用户Token
     * @return 结果
     */
    @PostMapping("/{followDinerId}")
    public ResultInfo follow(@PathVariable Integer followDinerId,
                             @RequestParam int isFollowed,
                             String access_token) {
        return followService.follow(followDinerId, isFollowed, access_token, servletRequest.getServletPath());
    }

    /**
     * 共同关注列表
     * 当前用户查看其他用户，获取两个用户之间的共同关注列表
     *
     * @param dinerId      查看对象Id
     * @param access_token 登录用户token
     * @return 结果
     */
    @GetMapping("commons/{dinerId}")
    public ResultInfo findCommonsFriends(@PathVariable Integer dinerId,
                                         String access_token) {
        return followService.findCommonsFriends(dinerId, access_token, servletRequest.getServletPath());
    }

    // 查询当前用户关注列表
    // 缓存中查询关注Id
    // 查询关注Id详细信息

    // 查询当前用户粉丝列表
    // 缓存

    // 查询当前按用户是否关注
    // 查询缓存是否拥有相对应记录
}